package club.gskj.gulimall.product.feign;

import club.gskj.common.to.SkuReductionTo;
import club.gskj.common.to.SpuBoundTo;
import club.gskj.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @ClassName CouponFeignService
 * @Description 用于远程调用 coupon Service服务接口
 * @Author 康纳
 * @Date 2021-02-05
 */


@FeignClient("gulimall-coupon")
public interface CouponFeignService {

    /**
     * 思路：
     * 1. CouponFeignService.saveSpuBounds(spuBoundTo)
     * 1.1 @RequestBody将这个对象转为JSON
     * 1.2 找到gulimall_coupon服务，给/coupon/spubounds/save发送请求
     * 将上一步转的json放在请求体中，发送给被调用的服务
     * 1.3 被调用的服务收到请求，请求体中由json数据，
     * (@RequestBody SpuBoundsEntity spuBounds): 将请求体中的json转为 SpuBoundsEntity
     * 只要json数据模型是兼容的，双方服务无需使用同一个TO对象也可以操作。
     *
     * @param spuBoundTo
     * @return com.baomidou.mybatisplus.extension.api.R
     * @Descript 远程feign 调用服务接口
     * @author 康纳-connor
     * @creed: Talk is cheap,show me the code
     * @date 21.2.5 19:10
     */
    @PostMapping("/coupon/spubounds/save")
    R saveSpuBounds(@RequestBody SpuBoundTo spuBoundTo);

    /**
     * 远程调用Coupon服务、
     *
     * @param skuReductionTo
     * @
     */
    @PostMapping("/coupon/skufullreduction/savereduection")
    R saveSkuReduection(@RequestBody SkuReductionTo skuReductionTo);

}
